<!DOCTYPE html>
<html lang="en">
<head>
  <meta charset="UTF-8">
  <meta name="viewport" content="width=device-width, initial-scale=1.0">
  <title>算数运算符(arithmetic operator)</title>
  <!-- 
    1. 加法运算符  `+` 
    - 功能：将两个操作数相加。
      let a = 5;
      let b = 3;
      let sum = a + b; // sum 的值为 8

    2. 减法运算符  `-` 
    - 功能：从第一个操作数中减去第二个操作数。
      let a = 5;
      let b = 3;
      let difference = a - b; // difference 的值为 2

    3. 乘法运算符  `*` 
    - 功能：将两个操作数相乘。
      let a = 5;
      let b = 3;
      let product = a * b; // product 的值为 15

    4. 除法运算符  `/` 
    - 功能：将第一个操作数除以第二个操作数。
      let a = 6;
      let b = 3;
      let quotient = a / b; // quotient 的值为 2

    5. 取余运算符  `%` 
    - 功能：返回第一个操作数除以第二个操作数的余数。
      let a = 5;
      let b = 2;
      let remainder = a % b; // remainder 的值为 1

    6. 自增运算符  `++` 
    - 功能：将操作数的值增加 1。
      let a = 5;
      a++; // a 的值变为 6

    7. 自减运算符  `--` 
    - 功能：将操作数的值减少 1。
      let a = 5;
      a--; // a 的值变为 4

    8. 指数运算符  `**` 
    - 功能：将第一个操作数的值提升到第二个操作数的幂。
      let a = 2;
      let b = 3;
      let power = a ** b; // power 的值为 8

    9. 取反运算符  `~`
    - 功能：对操作数进行按位取反。
      let a = 5;
      let b = ~a; // b 的值为 -6

    10. 按位与运算符  `&` 
    - 功能：对两个操作数进行按位与运算。
      let a = 5;
      let b = 3;
      let result = a & b; // result 的值为 1

    11. 按位或运算符  `|` 
    - 功能：对两个操作数进行按位或运算。
      let a = 5;
      let b = 3;
      let result = a | b; // result 的值为 7

    12. 按位异或运算符  `^`
    - 功能：对两个操作数进行按位异或运算。
      let a = 5;
      let b = 3;
      let result = a ^ b; // result 的值为 6

    13. 左移运算符  `<<` 
    - 功能：将第一个操作数的位向左移动第二个操作数指定的位数。
      let a = 5;

    14. 右移运算符  `>>`
    - 功能：将第一个操作数的位向右移动第二个操作数指定的位数。
      let a = 5;
      let b = a >> 1; // b 的值为 2

    15. 无符号右移运算符  `>>>`
    - 功能：将第一个操作数的位向右移动第二个操作数指定的位数，并将结果转换为无符号整数。
      let a = 5;
      let b = a >>> 1; // b 的值为 2

    16. 按位非运算符  `!`
    - 功能：对操作数进行按位取反。
      let a = 5;
      let b = !a; // b 的值为 false

    17. 逻辑非运算符  `!`
    - 功能：对操作数进行逻辑非运算。
      let a = 5;
      let b = !a; // b 的值为 false

    18. 逻辑与运算符  `&&`
    - 功能：对两个操作数进行逻辑与运算。
      let a = 5;
      let b = 3;
      let result = a && b; // result 的值为 3

    19. 逻辑或运算符  `||`
    - 功能：对两个操作数进行逻辑或运算。
      let a = 5;
      let b = 3;
      let result = a || b; // result 的值为 5

    20. 三元运算符  `? :`
    - 功能：根据条件表达式的结果选择两个操作数中的一个。
      let a = 5;
      let b = 3;

    21. 赋值运算符  `=`
    - 功能：将右操作数的值赋给左操作数。
      let a = 5;
      let b = 3;
      a = b; // a 的值为 3

    22. 加等于运算符  `+=`
    - 功能：将右操作数的值加到左操作数上，并将结果赋给左操作数。
      let a = 5;
      let b = 3;
      a += b; // a 的值为 8

    23. 减等于运算符  `-=`
    - 功能：将右操作数的值从左操作数中减去，并将结果赋给左操作数。
      let a = 5;
      let b = 3;
      a -= b; // a 的值为 2

    24. 乘等于运算符  `*=`
    - 功能：将右操作数的值乘以左操作数，并将结果赋给左操作数。
      let a = 5;
      let b = 3;
      a *= b; // a 的值为 15

    25. 除等于运算符  `/=`
    - 功能：将左操作数除以右操作数，并将结果赋给左操作数。
      let a = 5;
      let b = 3;
      a /= b; // a 的值为 1.6666666666666667

    26. 模等于运算符  `%=`
    - 功能：将左操作数除以右操作数，并将余数赋给左操作数。
      let a = 5;
      let b = 3;
      a %= b; // a 的值为 2

  总结表
| 运算符 | 名称       | 功能描述                       | 示例                |
|--------|------------|--------------------------------|---------------------|
|  `+`     | 加法       | 两个操作数相加                  |  `5 + 3 = 8`          |
|  `-`     | 减法       | 第一个操作数减去第二个操作数     |  `5 - 3 = 2`          |
|  `*`     | 乘法       | 两个操作数相乘                  |  `5 * 3 = 15`         |
|  `/`     | 除法       | 第一个操作数除以第二个操作数     |  `6 / 3 = 2`          |
|  `%`     | 取余       | 返回余数                       |  `5 % 2 = 1`          |
|  `++`    | 自增       | 操作数增加 1                   |  `let a = 5; a++`     |
|  `--`    | 自减       | 操作数减少 1                   |  `let a = 5; a--`     |

-->
</head>
<body>
  
  <script>
    // 1.加法运算符
    let a = 5;
    let b = 3;
    let c = a + b;
    console.log(c); // 输出 8

    // 2.减法运算符
    let d = a - b;
    console.log(d); // 输出 2

    // 3.乘法运算符
    let e = a * b;
    console.log(e); // 输出 15

    // 4.除法运算符
    let f = a / b;
    console.log(f); // 输出 1.6666666666666667

    // 5.取余运算符
    let g = a % b;
    console.log(g); // 输出 2

    // 6.自增运算符
    let h = a++;
    console.log(h); // 输出 5
    console.log(a); // 输出 6

    // 7.自减运算符
    let i = a--;
    console.log(i); // 输出 6
    console.log(a); // 输出 5

    // 7.1.自增运算符（前置）
    let j = ++a;
    console.log(j); // 输出 6
    console.log(a); // 输出 6

    // 7.2.自减运算符（前置）
    let k = --a;
    console.log(k); // 输出 5

    // 8.指数运算符**
    let l = a ** 2;
    console.log(l); // 输出 25
    console.log(Math.pow(a, 2)); // 输出 25

  </script>
    

  </script>

</body>
</html>